// QuadratoMagico.cpp : Defines the entry point for the console application.
/*
5 istruzioni
consiglio=matrice dispari
Il numero di partenza viene inserito nella prima riga e nella colonna centrale
Il numero di partenza +1 posizionato nella riga +1 e colonna +1 (a destra più in basso)
Se la prima riga è uguale a 0 allora la riga = nr-1 e colonna+1
Se colonna = nc * 1 allora colonna ==0 e riga +1 
Se posizione è già occupata !=0 riga-1 colonna==colonna
*/

#include "stdafx.h"
#include <iostream>
#define NR 3
#define NC 3
using namespace std;

void azzera(int matrice[][NC]);
void crea(int matrice[][NC]); // NON VA
void visualizza(int matrice[][NC]);

int main()
{
	int matrice[NR][NC];
	azzera(matrice);
	crea(matrice); // NON VA
	visualizza(matrice);
	system("pause");
    return 0;
}

void azzera(int matrice[][NC])
{
	for (int j = 0; j < NR; j++)
	{
		for (int i = 0; i < NC; i++)
		{
			matrice[j][i] = 0;
		}
	}
}

void crea(int matrice[][NC]) // ** NON VA **
{
	int cont = 1;
	int riga = NULL;
	int colonna = NC / 2;
	matrice[riga][colonna] = cont;
	cont++;
	riga=NR-1;
	colonna--;
	do
	{
		if (matrice[riga][colonna] == 0)
		{
			matrice[riga][colonna] = cont;
			cont++;
			riga++;
			colonna++;

			if (colonna == NC - 1)
			{
				colonna = 0;
				riga++;
			}
			else
				if (riga==NR-1)
				{
					riga = 0;
					colonna++;
				}
				else
					printf("\nWat? Else1 %d %d\n", riga, colonna);
		}
		else
			if (matrice[riga][colonna] != 0)
			{
				cont++;
				riga--;
			}
			else
				printf("\nWat? Else2 %d %d\n", riga, colonna);
	} while (cont < NC*NR);
}

void visualizza(int matrice[][NC])
{
	for (int j = 0; j < NR; j++)
	{
		for (int i = 0; i < NC; i++)
		{
			printf("%d ", matrice[j][i]);
		}
		printf("\n");
	}
}